home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tools
/
packer
/
xpk
/
xpkrake_v1.3
/
xpkrake.doc
next >
Wrap
Text File
|
1995-03-09
|
5KB
|
124 lines
RAKE
A cruncher of the LZ77 family
for the XPK-package
Version 1.3
Copyright 1994 by Karsten Dageförde
Status: FREEWARE
License/Disclaimer
------------------
This library may be freely distributed, as long as it is kept in its
original, complete, and unmodified form. It may NOT be distributed in a
commercial package of any kind without my permission.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
Installation
------------
You'll need to install the XPK package first to use this library. The
XPK package should be available on most Bulletin Board Systems, so try to
get it there.
If you already have the XPK package installed, add this library to
your system simply by copying the xpkRAKE.library to your LIBS:Compressors/
directory, or if you've got a 68020 (or greater) processor, you should take
the xpkRAKE.library.68020' instead.
Description
-----------
RAKE is an XPK packer sublibrary which implements a highly optimized
form of the popular LZ77 compression algorithm. It uses static huffman
coding for the 'len' and a three-step coding for the 'offset'
information. The major feature of this packer is the highly optimized
algorithm for tracking down redundant data.
RAKE now supports four modes at compression. To speed up compression
everytime a better match (than the previous) is found the 'dictionary' size
will be reduced dynamically according to the pack-mode by division ...
0..25 : by 8,
26..50 : by 4,
51..75 : by 2 (using 'lsr.w', of course).
76..100 : The full dictionary size of approx. 20KB will be scanned for
redundant data.
-----------------------------------------------------------------------------
IMPORTANT: There is no need to repack files packed with RAKE V1.0 - V1.2
(68000 or 68020 version), because RAKE V1.3 is totally
compatible with older versions and also vice versa, it just
works faster.
-----------------------------------------------------------------------------
Statistics
----------
Following is a table briefly listing some comparative statistics for
NUKE and RAKE. These were generated by xBench on an A3000/25
with 2MB ChipMem and 4MB FastMem, using the AmigaVision executable as data.
Note that memory needs don't include xpkmaster.library's buffers.
| Memory usage while
Packer UComp Comp CF CSpd USpd | packing unpacking
----------------------------------------------------------------------------
68020_V1.1 (OLD VERSION)
rake 594712 322872 45.8% 67047 491497 | 256K 0K
nuke 594712 326908 45.1% 41472 613105 | 192K 0K
68020_V1.3
rake.100 594712 322932 45.7% 73877 632672 | 256K 0K
rake.75 594712 325028 45.4% 86190 632672 | 256K 0K
rake.50 594712 326948 45.1% 96387 626012 | 256K 0K
rake.25 594712 328848 44.8% 103608 626012 | 256K 0K
68000_V1.3
rake.100 594712 322932 45.7% 72703 499757 | 256K 0K
rake.75 594712 325028 45.4% 84596 499757 | 256K 0K
rake.50 594712 326948 45.1% 94548 495593 | 256K 0K
rake.25 594712 328848 44.8% 101313 495593 | 256K 0K
History
---------
Sep-9-94 V1.0 First public release (68000,68020)
Sep-14-94 V1.1 BUGFIX: Uncompressable data (or remainder) should not cause
XPKERR_SMALLOUTBUF but XPKERR_EXPANSION !
(Worst case: OutLen = OutBufLen + 5(<<XPK_MARGIN) :)
V1.2 Not a public release (minor bugfix for xp>K<-handler)
Nov-6-94 V1.3 Using bit-field instructions for 68020 version. Pack-routine
now fits in 68020 instruction cache. Further optimizations
done to increase packing & unpacking speed :-). Memory
shortage causes XPKERR_EXPANSION => files won't be packed but
be saved uncompressed by XFH without aborting with an error.
Contact Address
---------------
dagefoer@rzcipa03.rz.tu-bs.de
OR
dagefoer@ibr.cs.tu-bs.de